package com.mpj.yolov12;

import android.graphics.Bitmap;
import android.graphics.Matrix;

import java.nio.ByteBuffer;

public class BitmapUtil {
    public static byte[] bitmapToRGBABytes(Bitmap bitmap) {
        int bytesPerPixel = 4; // RGBA
        int bytes = bitmap.getWidth() * bitmap.getHeight() * bytesPerPixel;
        ByteBuffer buffer = ByteBuffer.allocate(bytes);
        bitmap.copyPixelsToBuffer(buffer);
        return buffer.array();
    }

    /**
     * 将 Bitmap 向左旋转 180 度
     *
     * @param sourceBitmap 原始的 Bitmap 对象
     * @return 旋转后的 Bitmap 对象
     */
    public static Bitmap rotateBitmap(Bitmap sourceBitmap, float degrees) {
        // 创建一个 Matrix 对象，用于进行图像变换
        Matrix matrix = new Matrix();
        // 设置旋转角度为 180 度
        matrix.postRotate(degrees);
        // 根据原始 Bitmap 和 Matrix 进行旋转操作，生成新的 Bitmap
        return Bitmap.createBitmap(sourceBitmap, 0, 0, sourceBitmap.getWidth(), sourceBitmap.getHeight(), matrix, true);
    }
}
